package epoch.game.core.util;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 集合工具类
 * @author will
 * @date 2016年5月31日 下午1:43:03
 */
public class CollectionUtil {

	public static <T> void addToArrayList(List<T> list, T item){
		if(list==null){
			list = new ArrayList<T>();
		}
		list.add(item);
	}
	
	public static <T> void addToLinkedList(List<T> list, T item){
		if(list==null){
			list = new LinkedList<T>();
		}
		list.add(item);
	}
	
	public static <T> void addToHashSet(Set<T> set, T item){
		if(set==null){
			set = new HashSet<T>();
		}
		set.add(item);
	}
	
	public static <K,V> void putToHashMap(Map<K,V> map, K key, V value){
		if(map==null){
			map = new HashMap<K, V>();
		}
		map.put(key, value);
	}
	
	/**
	 * 获取int值
	 * @param source
	 * @param key
	 * @return
	 */
	public static <K> int getInt(Map<K, String> source, K key){
		String strVal = source.get(key);
		if(strVal==null || strVal.trim().isEmpty()){
			return 0;
		}else{
			return Integer.parseInt(strVal.trim());
		}
	}
	
	public static <K,V> String buildStr(Map<K,V> map){
		StringBuilder sb = new StringBuilder();
		for(Map.Entry<K, V> entry : map.entrySet()){
			sb.append(entry.getKey()).append(":").append(entry.getValue());
		}
		return sb.toString();
	}
	
	/**
	 * 构建整形Set
	 * @param arrayStr
	 * @param seperator
	 * @return
	 */
	public static HashSet<Integer> buildIntSet(String arrayStr, String seperator){
		HashSet<Integer> result = new HashSet<>();
		if(arrayStr==null || arrayStr.isEmpty()){
			return result;
		}
		String[] strs = arrayStr.split(seperator);
		for(int i=0; i<strs.length; i++){
			result.add(Integer.parseInt(strs[i]));
		}
		return result;
	}
}
